草庐IT

Ruby File 类和方法

全部标签

通用扩展方法的 C# 特化

我的MessageBus有以下扩展方法:publicstaticclassMessageBusMixins{publicstaticIDisposableSubscribe(thisIObservableobservable,MessageBusbus)whereT:class{...}publicstaticIDisposableSubscribe(thisIObservable>observable,MessageBusbus){...}}编译正常。但是当我尝试使用它时:IObservable>source=...;MessageBusbus=...;source.Subscrib

c# - 为什么不在构造函数中调用可覆盖的方法?

这是一个过于简单的例子,但我有一些现实生活中的代码在概念上做同样的事情(试图验证派生类的值“设置”访问器方法),分析器给我“不要调用可重写的方法build者。”我想弄清楚我是否应该更改我的代码,或者忽略警告。我想不出有什么理由应该注意这个警告。publicabstractclassSimpleUrl{protectedstring_url;publicabstractstringUrl{get;set;}publicSimpleUrl(){}publicSimpleUrl(stringUrl){this.Url=Url;}}publicclassHttpUrl:SimpleUrl{pu

c# - 如何从 EF 的非异步 SaveChanges 安全地调用异步方法?

我正在使用ASP.NETCore和具有SaveChanges和SaveChangesAsync的EFCore。在保存到数据库之前,在我的DbContext中,我执行了一些审计/日志记录:publicasyncTaskLogAndAuditAsync(){//doasyncstuff}publicoverrideintSaveChanges{/*await*/LogAndAuditAsync();//whatdoIdohere???returnbase.SaveChanges();}publicoverrideasyncTaskSaveChangesAsync{awaitLogAndAu

c# - Moq Setup 不工作,原来的方法仍然被调用

当我尝试使用Moq时它仍然调用的原始方法。这是我的代码:varmockedBetRepository=newMock(newFakeSiteContext());mockedBetRepository.CallBase=true;Betbet=newBet();mockedBetRepository.Setup(m=>m.UpdateBet(bet)).Returns(bet);betRepository=mockedBetRepository.Object;稍后在代码中,调用了betRepository.UpdateBet(bet),但调用的不是我模拟的方法,而是类的方法:publi

c# - 无法使用动态参数和泛型调用扩展方法

我很好奇是否有其他人遇到过同样的问题...我在一个项目的ORM上使用Dapper,并从IDbConnection创建了一些我自己的扩展方法。为了简化代码,我遇到了(我发现的)令人费解的错误。我将详细介绍我所经历的过程。首先,我在一个名为DbExtensions的静态类中向我的项目添加了一个扩展方法。像这样:usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Linq;publicstaticclassDbExtensions{publicstaticTScalar(thisIDbConnectioncnn,strin

c# - 为什么重载方法的优先级低于实例方法

我有基类ApublicclassA{publicvirtualvoidMethod(Aparameter){Console.WriteLine(MethodBase.GetCurrentMethod());}publicvirtualvoidMethod(Bparameter){Console.WriteLine(MethodBase.GetCurrentMethod());}}继承BpublicclassB:A{publicvirtualvoidMethod(objectparameter){Console.WriteLine(MethodBase.GetCurrentMethod(

c# - 使用 Roslyn CodeFixProvider 向方法添加访问修饰符?

几天前我在TechEd,我看到了thistalkbyKevinPilch-Bisson(releventpartstartsatabout18minutes)...我觉得这很酷,所以我决定自己和Roslyn一起玩。我正在尝试制定规则“必须声明访问修饰符”(StylecopSA1400)-意思是,这违反了规则:staticvoidMain(string[]args){}没关系:publicstaticvoidMain(string[]args){}它必须有明确的内部关键字、公共(public)关键字、私有(private)关键字或protected关键字。检测违规相当容易,但现在我正在尝

c# - 从 lambda 表达式访问属性的 HtmlHelper 方法之间的区别

我正在尝试按照格式编写我的第一个客户HtmlHelper扩展方法publicstaticMvcHtmlStringMyHelperFor(thisHtmlHelperhelper,Expression>expression)而且似乎有几种不同的方法可以从expression访问属性名称和值varbody=expression.BodyasMemberExpression;varpropertyName=body.Member.Name;varpropertyInfo=typeof(TModel).getProperty(propertyName)varpropertyValue=pro

c# - 一种自动化MS Office VBA代码 "Compile"函数的方法

通常,当我对VBA文件进行更改时,我喜欢编译它以确保我的更改不会破坏任何内容:但是在不同版本的office在不同的机器上编译会得到不同的结果,有时会编译,有时不会...东西likethis可能发生,或者maybethis.结果在每个版本的excel中都有各种thingscanbedifferent(不只是引用,尽管这是最常见的问题)。如何自动编译我的VBA代码?我希望能够在Excel、PowerPoint和Word等多种产品中执行此操作,我希望能够编译为32位和64位,包括2010、2013、2016等......更新1是的,这仍然是一个主要的痛点,现在我有一系列手动测试人员(人员)根

c# - 能否从 ActionFilter 中获取方法中使用的参数值?

假设我有一个这样的Controller方法:[Audit]publicJsonNetResultList(intstart,intlimit,stringsort,stringdir,stringsearchValue,SecurityInputModelsecurityData){...}和这样定义的属性:[AttributeUsage(AttributeTargets.Method)]publicclassAuditAttribute:ActionFilterAttribute{publicoverridevoidOnActionExecuted(ActionExecutedCon